package org.example.day02;

import java.util.Scanner;

/**
 * @author zlxad
 * @version 1.0
 * @description: TODO +
 * <span>有位客人来自异国，在该国使用m进制计数。该客人有个幸运数字n(n&lt;m)，每次购物时，其总是喜欢计算本次支付的花费(折算为异国的价格后)中存在多少幸运数字。问：当其购买一个在我国价值k的产品时，其中包含多少幸运数字？</span>
 * <p>
 * 有位客人来自异国，在该国使用m进制计数。该客人有个幸运数字n(n<m)，
 * 每次购物时，其总是喜欢计算本次支付的花费(折算为异国的价格后)中存在多少幸运数字。
 * 问：当其购买一个在我国价值k的产品时，其中包含多少幸运数字？
 * @date 2024/3/11 15:22
 */
public class test036 {

    public static int countLuckyNumber(int k, int n, int m) {
        // 转换为m进制的字符串
        String kBaseM = Integer.toString(k, m);

        // 将幸运数字转换为m进制下的字符串
        String nBaseM = Integer.toString(n, m);

        // 计数幸运数字出现的次数
        int count = 0;
        while (kBaseM.contains(nBaseM)) {
            count++;
            kBaseM = kBaseM.substring(kBaseM.indexOf(nBaseM) + nBaseM.length());
        }

        return count;
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        try {
            // 读取输入
            int k = scanner.nextInt();
            int n = scanner.nextInt();
            int m = scanner.nextInt();

            // 检查输入是否合法
            if (n >= m) {
                throw new IllegalArgumentException("幸运数字n需要小于进制m");
            }

            // 调用方法并输出结果
            System.out.println(countLuckyNumber(k, n, m));
        } catch (IllegalArgumentException e) {
            // 如果输入非法，输出0
            System.out.println(0);
        } finally {
            scanner.close();
        }
    }
}

